package cn.ltgodm.template.user.service;

import cn.ltgodm.template.common.domain.entity.Role;
import cn.ltgodm.template.common.domain.vo.RoleVO;
import cn.ltgodm.template.user.domain.param.RoleParam;
import cn.ltgodm.template.user.domain.param.RoleQueryParam;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;
import java.util.Set;

/**
* @author wenpeng
* @description 针对表【lt_role(角色信息表)】的数据库操作Service
* @createDate 2024-03-17 22:12:11
*/
public interface RoleService extends IService<Role> {

    Set<String> selectRolePermissionByUserId(Long userId);

    List<RoleVO> selectRoleAll();


    IPage<RoleVO> selectRoleList(RoleQueryParam roleQueryParam);

    boolean checkRoleNameUnique(RoleParam queryParam);

    boolean checkRoleKeyUnique(RoleParam queryParam);

    int insertRole(RoleParam queryParam);

    int updateRole(RoleParam queryParam);

    int deleteRoleByIds(Long[] roleIds);

    RoleVO selectRoleById(Long roleId);

    int updateRoleStatus(RoleParam queryParam);
}
